As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is an information handling system (IHS). An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for such systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
In current client-server architectures, server sprawl may post a significant and costly issue. Server sprawl may refer to a situation having multiple underutilized servers taking more space and consuming more resources than can be justified by their workload. In response, several techniques toward server consolidation, i.e., decreasing the total number of servers required, have been developed. One technique may involve the idea of server virtualization, which may entail using software to mask server resources from users by creating multiple software implemented virtual servers on a single physical server. Under this framework, virtualization software may manage and allocate the physical server's resources among all the virtual servers, though distinct sets of resources may be simulated for each individual virtual server. Thus, the total number of physical servers may be reduced since each physical server may host more than one virtual server. Furthermore, the utilization levels of the physical servers may increase as well by distributing the virtual servers evenly according to server utilization level across the physical servers.
The concept of server consolidation and virtualization has also extended to desktop consolidation and virtualization. A desktop may refer to an information handling system, such as a personal computer (PC) or a software implementation resembling a personal computer to a user i.e., a virtual machine or the like. A server is typically an information handling system with a single or multiple processors that can couple multiple desktops or personal computers together in a network. In desktop consolidation architectures implementing desktop virtualization, user desktops may be centralized on a server or group of servers such that the servers may create virtual machines according to the users' needs. For example, rather than a user having a physical personal computer, possibly in a remote office location, the user may instead have a thin client. A thin client may refer to any information handling system which depends primarily on a server for processing power, memory, and other resources and may focus on conveying inputs and outputs between the user and the server. Indeed, when a user logs into a server through a thin client, the server may connect the thin client with a virtual machine. The thin client may provide a display for the virtual machine and thereby provide a resemblance to a physical personal computer. Thus, certain efficiencies may be realized including, but not limited to, reducing the number of physical personal computers and enabling each virtual machine to execute a different operating system from one another.
Desktop virtualization, however, may pose added complexity to a system or network, particularly in the assignment or scheduling of virtual machines among physical servers. Indeed, current scheduling policies may be tailored toward server consolidation scenarios and may not be optimal for desktop consolidation solutions. For example, some virtualization servers may have the ability to group virtual machines with similar characteristics, such as the same operating system and/or application or the like, and use this information to identify memory pages common between the virtual machines. Thus, virtual machines with common memory pages may share a single physical memory rather than using separate memory pages. In some instances, this feature may be referred to as transparent page sharing. As a result, grouping together virtual machines with similar characteristics on a virtualization server having transparent page sharing could provide significant savings in memory, increase server utilization levels, and reduce costs. Current scheduling techniques may not take these factors into account when placing virtual machines among the physical servers and may instead rely on predefined policies set by a user. Thus, a need exists for methods and systems for providing a scheduling optimization targeted for desktop virtualization.